package br.pucrs.prototipoonline.action;

import java.util.Collection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.pucrs.prototipoonline.facade.ProjetosFacade;
import br.pucrs.prototipoonline.json.ProjetoJS;
import br.pucrs.prototipoonline.util.JSONUtil;
import br.pucrs.prototipoonline.vo.ProjetoVO;


/**
 * 
 * @author Ricardo Luckei
 * @author Gelson Gentil
 *
 */
public class ListarProjetosAction extends POAjaxAction {

	private Logger logger = Logger.getLogger(ListarProjetosAction.class);
	
	public ActionForward executar(ActionMapping mapping, ActionForm actionForm,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		logger.info("Entrando");
		
		String str = request.getParameter("jsonParam");
		System.out.println(str);
		
		ProjetosFacade projetoFacade = (ProjetosFacade) getFacade(ProjetosFacade.class);
		Collection<ProjetoVO> listaProj = projetoFacade.buscarProjetosPorUsuario();
		logger.debug("Encontrado "+listaProj.size() +" projetos");
		
		ProjetoJS[] arrpjs = new ProjetoJS[listaProj.size()];
		int cont = 0;
		
		for(ProjetoVO vo : listaProj) {
			logger.debug("Projeto: "+vo.getId()+" - " + vo.getNome());
			ProjetoJS pjs = new ProjetoJS();
			pjs.setId(vo.getId());
			pjs.setNome(vo.getNome());
			arrpjs[cont++] = pjs;
		}
		
		String output = JSONUtil.toJsonArray(arrpjs);
		logger.debug("Lista de projetos JSON:\n" + output);
		writeOutput(output);
		
		logger.info("Saindo");
		return null;
	}
}
